package cc.rengu.igas.bomp.common.dao;

import cc.rengu.igas.bomp.common.entity.TermInfo;

import java.util.List;

/**
 * Created by zhangxuran on 2020/06/18
 */
public interface TermInfoMapper {
    /**
     * 根据主键查询终端信息
     *
     * @param instId  多法人标识
     * @param mchntNo 商户号
     * @param termNo  终端号
     * @return 终端信息
     * @throws Exception 异常
     */
    TermInfo selectBompTermInfoByPrimaryKey(String instId, String mchntNo, String termNo) throws Exception;

    /**
     * 根据主建更新终端信息
     *
     * @param termInfo 终端信息
     * @param oprType  操作类型
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateBompTermInfoByPrimaryKey(TermInfo termInfo, String oprType) throws Exception;

    /**
     * 根据终端号查询终端列表信息
     *
     * @param instId     机构号
     * @param termNo     终端号
     * @param termStatus 终端状态
     * @return 终端信息
     * @throws Exception 异常
     */
    TermInfo selectBompTermInfoByTermNo(String instId, String termNo, String termStatus) throws Exception;


    /**
     * 根据终端号查询终端列表信息
     *
     * @param instId  机构号
     * @param mchntNo 商户号
     * @return 终端信息
     * @throws Exception 异常
     */
    List<TermInfo> selectBompTermInfoByMchntNo(String instId, String mchntNo) throws Exception;


    /**
     * 更新商户下所有终端状态
     *
     * @param termInfo 终端信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateBompAllTermStatusByMchntNo(TermInfo termInfo) throws Exception;


    /**
     * 查询商户终端数量
     *
     * @param instId  多法人标识
     * @param mchntNo 商户号
     * @return termStatus 状态
     * @throws Exception 异常
     */
    TermInfo selectBompTermInfoNum(String instId, String mchntNo, String termStatus) throws Exception;

    /**
     * 根据终端号查询终端列表信息
     *
     * @param instId  机构号
     * @param mchntNo 商户号
     * @return 终端信息
     * @throws Exception 异常
     */
    List<TermInfo> selectBompTermInfoByMchntNo(String instId, String mchntNo, String bindUserId) throws Exception;
}
